#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include<QStackedLayout>
#include <QApplication>
#include <QDialog>
#include<QSqlDatabase>
#include<QDebug>
#include<QSqlError>
#include<QMessageBox>
#include<QSqlTableModel>
#include<connection.h>
#include"menu.h"
#include"enter_ad.h"
#include"set_ad.h"
#include"enter_st.h"
#include"ad.h"
#include"gpa.h"
#include"st.h"

typedef ad Ad;
namespace Ui {
class mainWidget;
}

class mainWidget : public QWidget
{
    Q_OBJECT

public:
    //explicit关键字防止一个函数的构造函数隐式自动转换类型
    //必须显式给出转换
    explicit mainWidget(QWidget *parent = nullptr);
    ~mainWidget();
    Menu*menu;//添加各窗口类指针
    Ad*ad;
    Set_ad*set_ad;
    Enter_st*enter_st;
    Enter_ad*enter_ad;
    GPA*gpa;

    QStackedLayout*stackLayout;//QStackLayout布局

    //设置打开ODBC数据源连接SqlServer数据库
    bool OpenDatabase()
    {
        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");   //数据库驱动类型为SQL Server
        qDebug()<<"ODBC driver?"<<db.isValid();
        QString dsn = QString::fromLocal8Bit("student_management");      //数据源名称
        db.setHostName("LAPTOP-QT3Q5RCN");                        //选择本地主机，127.0.0.1
        db.setDatabaseName(dsn);                            //设置数据源名称
        db.setUserName("sa");                               //登录用户
        db.setPassword("123456");                           //密码
        if(!db.open())                                      //打开数据库
        {
            qDebug()<<db.lastError().text();
            QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());
            return false;                                   //打开失败
        }
        else{
            qDebug()<<"SQLServer打开成功!";


    }
        return true;
    }



private:
    Ui::mainWidget *ui;

};

#endif // MAINWIDGET_H
